var commonFunc={}; // 공통함수
commonFunc={
	tmp:'',

	goURL: function(url) { // 페이지 이동
		document.location.href=url;
	},
	popup: function(url, width, height) { // 새창
		var popupWindow=window.open(url,'popupWindow','location=no, directories=no,resizable=no,status=no,toolbar=no,menuBar=no,width='+width+',height='+height+',top=1,left=1');
		popupWindow.focus();		
	},

	alert: function(msg, fn) { // jQuertUI alert
		$('#dialog p').html(msg);
		$('#dialog').dialog({
			modal: true,
			buttons: {
				'확인': function() {
					$(this).dialog('close');
					if(typeof(fn) == "function") fn();
				}
			}
		});
	},
	confirm: function(msg, obj) { // jQuertUI confirm
		if(typeof(obj) != "object") return;
	
		$('#dialog p').html(msg);
		$('#dialog').dialog({
			modal: true,
			buttons: obj
		});
	},

	replaceAll: function(str, orgStr, repStr) {
		// replace 메소드의 경우 최초 1번 밖에 실행되지 않으나 아래의 함수를 이용하면 모두 치환된다.
		// str : 문자열
		// orgStr : 이전 문자열
		// repStr : 이후 문자열
		return str.split(orgStr).join(repStr);
	},	
	
	checkStrLen: function(obj, maxlen, msg) { // 
		// input 또는 textarea의 글자수 제한
		// obj : 해당 오프젝트
		// maxlen : 최대 글자수
		// msg : 문자열
		var i=0, l=0;
		var tmp;
		var value=obj.value;
		var len=value.length;

		while(i<len) {
			tmp=value.charAt(i); // 한글자 추출

			if(escape(tmp).length>4) { l+=1; } // 한글도 1바이트
			else if(tmp!='\r') { l++; } // 영문이면 1바이트

			if(l>maxlen) {
				tmp=value.substr(0,i);
				obj.value=tmp;
				return ;
			}
			i++;
		}
	},

	getFileExt: function(file) { 
		// 문자열의 마지막에 나타나는 쩜(.) 이후의 문자열을 반환
		// 파일명인 경우 확장자 반환
		if(file=="") return ;
		var m=file.lastIndexOf(".");
		if(m==-1) return ;
		var e=file.length;
		var extname=file.substring(m+1,e);
		extname=extname.toLowerCase();

		return extname;
	},

	addIndicator: function() { // ajax용 이미지
		var b_width = document.body.clientWidth/2 + document.body.scrollLeft; // 페이지 전체 크기
		var b_height = document.body.clientHeight/2+ document.body.scrollTop; // 페이지 전체 크기
		
		var str=jQuery("<div>")
			.attr({ id: 'indicator'})
			.css({ 'display': 'none', 'z-index': '10002', 'position': 'absolute', 'left': b_width, 'top': b_height })
		var str2=jQuery("<img>")
			.attr({ src: 'webSource/common/css/images/loadinfo.gif', title: '잠시만 기다리십시오. 작업중입니다.'})
		str.append(str2);
		jQuery("#popupWindow").prepend(str);
	},
	
	buttons: function() { // 버튼
		/* 버튼 공통 */
		$("button.jQueryUI").button(); // jQuertUI 기본 버튼
		$("button[type=submit], button.ok").button({ icons: { primary: 'ui-icon-check' } }); // 전송
		$("button[type=reset], button.return").button({ icons: { primary: 'ui-icon-arrowreturnthick-1-w' } }); // 취소

		/* 게시판 */
		$("button.search").button({ icons: { primary: 'ui-icon-search' } }); // 검색
		$("button.write").button({ icons: { primary: 'ui-icon-pencil' } }); // 글쓰기
		$("button.attachFile").button({ icons: { secondary: 'ui-icon-disk' } }); // 첨부파일
		$("button.comment").button({ icons: { primary: 'ui-icon-comment' } }); // 코멘트 달기
		$("button.move").button({ icons: { primary: 'ui-icon-arrowreturnthick-1-n' } }); // 이동
		$("button.list").button({ icons: { primary: 'ui-icon-document' } }); // 목록
		$("button.modify").button({ icons: { primary: 'ui-icon-wrench' } }); // 수정
		$("button.reply").button({ icons: { primary: 'ui-icon-arrowreturnthick-1-e' } }); // 답변
		$("button.del").button({ icons: { primary: 'ui-icon-trash' } }); // 글삭제
		$("button.newwin").button({ icons: { primary: 'ui-icon-newwin' } }); // 새창
		$("button.config").button({ icons: { primary: 'ui-icon-gear' } }); // 관리자
		$("button.allselect").button({ icons: { primary: 'ui-icon-bullet' } }); // 모두선택
		/* 게시판 관리 */
		$("button.add").button({ icons: { primary: 'ui-icon-plusthick' } }); // 추가
		$("button.arrow-up").button({ icons: { primary: 'ui-icon-arrowthick-1-n' } }); // 위
		$("button.arrow-down").button({ icons: { primary: 'ui-icon-arrowthick-1-s' } }); // 아래
		/* 회원가입 */
		$(".prevbutton").button({ icons: { primary: 'ui-icon-triangle-1-w' } }); // 이전
		$(".nextbutton").button({ icons: { secondary: 'ui-icon-triangle-1-e' } }); // 다음
	},
	
	sessionBind:function() {
		var url="/intra/blank.php";
		$.get(url);
	}
}

jQuery.ajaxSetup({
	error: function() {
		commonFunc.alert('서버로부터 올바른 정보를 받을 수 없습니다.<br />올바른 접속이 아니거나 세션이 끊긴것 같습니다.');
	},
	timeout: 60000 // 타임아웃 60초
});

$(function(){
	commonFunc.buttons(); // 버튼들
	commonFunc.addIndicator(); // ajax 로딩 이미지
	jQuery("#indicator").ajaxStart(function(){ jQuery(this).show(); }).ajaxStop(function(){ jQuery(this).hide(); });

	if($.browser.msie && $.browser.version=="6.0") {
		DD_belatedPNG.fix('img');
	}

	$.datepicker.setDefaults($.datepicker.regional["ko"]);
	if($("input.date").length) {
		$("input.date").datepicker({ dateFormat: 'yy-mm-dd' }); // 달력
	}
	$("button[type=button]").live('click', function(){ // 버튼에 링크있으면 이동하기
		var href=$(this).attr("href");
		if(href) commonFunc.goURL(href);
	});
	
});

